package com.leetcode;

import com.leetcode.common.TreeNode;

/**
 * 226. 翻转二叉树
 * 从根节点开始，递归地对树进行遍历，并从叶子节点先开始翻转
 * 先递归翻转子树再翻转当前节点
 *
 * @author fy
 * @date 2022-04-17 16:35
 */
public class Solution226 {

    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }

        // 先对左右子树翻转
        TreeNode leftNode = invertTree(root.left);
        TreeNode righNode = invertTree(root.right);

        // 再将当前节点的左右节点翻转
        root.left = righNode;
        root.right = leftNode;

        return root;
    }

}
